iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0
自我挑戰組

ROS 筆記:要怎麼叫無人機自己飛系列 第 2

【ROS 筆記:要怎麼叫無人機自己飛】Day 2:ROS 是什麼

  • 分享至 

  • xImage
  •  

在上一篇我只簡單提到 ROS(Robot Operating System)是開發機器人軟體常用的一套開源系統,這一篇就來正式介紹它。

推出 ROS 的歷史背景

ROS 源自於史丹佛大學機器人實驗室的一個計畫,當時還是博士生(後來成為計畫負責人)的 Eric Berger 和 Keenan Wyrobek 發現,整個實驗室乃至整個機器人研究領域都陷在同一個讓人崩潰的困境:「所有人都在重複造輪子」。

機器人技術在當時各立山頭,無數的研究人員花費九成的時間就只為了把這些不相容的技術縫合起來,或是做別人已經做過的工作,就連在同個實驗室裡想要共享程式碼都阻礙重重。因此開發機器人的過程曠日廢時,整個領域發展極度緩慢。

圖片來源:The Origin Story of ROS - IEEE Spectrum。這是 Wyrobek 投稿於 IEEE 的文章,述說 ROS 創辦的心路歷程。

Berger 和 Wyrobek 認為不能再這樣下去了。於是,這兩人開啟了《Stanford Personal Robotics Program》計畫,開始打造 ROS 的原型。用 Eric Berger 受訪(Wizards of ROS - IEEE Spectrum) 時的回應來解釋:「我們想要做一個在各方面都不再讓人失望,可以在上面好好打造機器人的地基。」

後來,他們的團隊接受機器人新創孵化器 Willow Garage (後來轉型成非營利公司 Open Robotics)的投資,在 2010 年推出了 ROS 1.0,並且在短短五年內迅速擴大影響力:全世界各大學的機器人實驗室開始廣泛採用 ROS 來做研究和發論文,每年舉辦的研討會 ROSCON 躋身機器人頂尖會議。ROS 還取得美國國防部的軟體合約,甚至讓 NASA 在國際太空站上啟用基於 ROS 開發的機器人。

十多年過去,現在 ROS 擁有來自全世界數百萬個開發者,並且還在持續吸引更多的開發者和研究人員加入這個開源社群。

ROS 的核心精神

ROS 的核心精神正是它快速遍及全球的主因:

  • 提高複用率:ROS 讓開發機器人專案就像組樂高積木一樣,想要什麼功能隨插即用。開發者可以花更多心力在優化系統和研發新功能,不必再重寫基礎程式碼。

  • 開發的標準化: 假如某個團隊開發了一個新的技術模組,其他團隊就可以基於這個模組進一步開發。所有人都可以站在前人的肩膀上,推動整個領域向前發展。

  • 龐大的資料庫:ROS 擁有一個豐富的軟體生態系,無論是機器人的硬體驅動、運動控制、感知系統、行為規劃或是用於實驗的模擬環境,都可以在 ROS 平台上找到相應的技術資源。

  • 模組化架構: 模組化架構使得 ROS 在不同規模和複雜度的機器人系統上都適用,同時也提高了系統容錯性,不同模組可以獨立運作,就算某個模組出現故障也不會讓整個系統無法運作。

ROS 1 和 ROS 2 的差異

如果現在去 ROS 官網會看到同時有 ROS 1 和 ROS 2 兩個選項可以安裝,不過, ROS 1 和 ROS 2 兩者並非是同一套軟體新舊版本的關係,而是為了不同用途和需求而有不同設計的兩個分支。

ROS 1 主要用於學術研究和原型開發,因為發展的歷史較長,初學者比較容易找到教學文件、範例程式碼和獲得社群的幫助。

ROS 2 的目標則是應對現代工業應用、嵌入式系統以及其他需要高即時性或安全性的場合。提升了系統的實時性、可靠性和安全性。

由於我本來就是在學術研究中使用 ROS ,所以這個系列還是會以 ROS 1 為主。


本來只是想簡單寫 ROS 有什麼特色,但是在翻資料時找到了創辦人的訪談,乾脆分享給各位看看。而且我也是看了才知道 ROS 推出前研究機器人有多少辛酸血淚(訪談內容其實寫得很好看),ROS 系統至今也才推出十幾年而已,難怪機器人開發直到近年才開始有些起色。

寫完 ROS 的歷史故事後,下一篇來談 ROS 具體有什麼功能吧。


上一篇
【ROS 筆記:要怎麼叫無人機自己飛】Day 1:關於這個系列文你需要知道的事
下一篇
【ROS 筆記:要怎麼叫無人機自己飛】Day 3:簡述 ROS 的系統架構
系列文
ROS 筆記:要怎麼叫無人機自己飛14
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言